<!DOCTYPE html>
<html lang="en">
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta charset="UTF-8">
    <title>单链表</title>
</head>
<body>
<h1>单链表</h1>
<script type="module">
    import { SingleList } from '../SingleList.js'
    const list = new SingleList(['A', 'B', 'C', 'D', 'E'])
    console.log(list)
    list.display()
    /*************根据index插入*************/
    console.log('\n*************根据index插入*************')
    // 表头插入
    list.insert('0', 0)
    list.display()
    // 表尾插入
    list.insert('F', list.length() - 1)
    list.display()
    // 表中插入
    list.insert('M', 3)
    list.display()

    /*************根据index删除*************/
    console.log('\n*************根据index删除*************')
    // 表头删除
    list.remove(0)
    list.display()
    // 表尾删除
    list.remove(list.length() - 1)
    list.display()
    // 表中删除
    list.remove(3)
    list.display()

    /*************根据结点插入*************/
    console.log('\n*************根据结点插入*************')
    // 表头插入
    list.insertByNode('A', 'Z')
    list.display()
    // 表尾插入
    list.insertByNode('F', 'H')
    list.display()
    // 表中插入
    list.insertByNode('B', 'C')
    list.display()

    /*************根据结点删除*************/
    console.log('\n*************根据结点删除*************')
    // 表头删除
    list.removeByData('A')
    list.display()
    // 表尾删除
    list.removeByData('F')
    list.display()
    // 表中删除
    list.removeByData('B')
    list.display()

    /*************追加*************/
    console.log('\n*************追加*************')
    list.append('G')
    list.display()

    /*************查找*************/
    console.log('\n*************根据data查找*************')
    console.log(list.find('A'))
    console.log(list.find('Z'))

    console.log('\n*************根据下标查找*************')
    console.log(list.findIndex(0))
    console.log(list.findIndex(3))
    console.log(list.findIndex(6))

    /*************清空*************/
    console.log('\n*************清空*************')
    console.log(list.isEmpty())
    list.clear()
    console.log(list)

</script>
</body>
</html>
